home *** CD-ROM | disk | FTP | other *** search
/ NOVA - For the NeXT Workstation / NOVA - For the NeXT Workstation.iso / SourceCode / AssociationExample / QualifiedAssociation.m < prev    next >
Text File  |  1992-12-19  |  2KB  |  68 lines

  1. /* QualifiedAssociation.m:
  2.  * You may freely copy, distribute, and reuse the code in this example.
  3.  * NeXT disclaims any warranty of any kind, expressed or  implied, as to its
  4.  * fitness for any particular use.
  5.  *
  6.  * Written by Mai Nguyen, NeXT Developer Support
  7.  *
  8.  */
  9.  
  10. #import "QualifiedAssociation.h"
  11.  
  12. @implementation QualifiedAssociation
  13.  
  14. - setValue:value
  15. {
  16.     [[self destination] fetchContentsOf:value usingQualifier:dbQualifier];
  17.     return self;
  18. }
  19.  
  20. - setQualifier: qualifier
  21. {
  22.     dbQualifier = (DBQualifier *)qualifier;
  23.     return self;
  24. }
  25.  
  26. - qualifier
  27. {
  28.     return dbQualifier;
  29. }
  30.  
  31.  
  32. /*  C function to set up a custom association between the master fetchgroup
  33.  *  and the detail fetchgroup.
  34.  */
  35.  
  36. QualifiedAssociation * setUpAssociation(DBFetchGroup * dbFetchGroup)
  37. {
  38.     DBModule *                 dbModule;
  39.     DBAssociation *         dbAssociation;
  40.     DBExpression *            dbExpression;
  41.     DBFetchGroup *            masterFetchGroup;
  42.     QualifiedAssociation *    qualifiedAssociation;
  43.     
  44.         
  45.     /* Get a hold of the association from master fetchgroup to detail
  46.      * fetchgroup
  47.      */
  48.     dbModule = [dbFetchGroup module];
  49.     dbAssociation = [dbModule associationForObject:dbFetchGroup];
  50.     dbExpression = [dbAssociation expression];
  51.     masterFetchGroup = [dbAssociation fetchGroup];
  52.         /* Remove the association from the master fetchgroup
  53.          */
  54.     [masterFetchGroup removeAssociation:dbAssociation];
  55.     qualifiedAssociation = [[QualifiedAssociation alloc]
  56.                      initFetchGroup:masterFetchGroup
  57.                     expression: dbExpression
  58.                     destination: dbFetchGroup ];
  59.             
  60.     [masterFetchGroup addAssociation:qualifiedAssociation];
  61.     
  62.         /* Free old association */
  63.     [dbAssociation free];
  64.     return qualifiedAssociation;
  65. }
  66.  
  67. @end
  68.